-
Notifications
You must be signed in to change notification settings - Fork 16
[Transform][Fusion] yield fused producer if necessary #289
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
7ab0442 to
3cfdafc
Compare
|
This patch is also helpful to debug intermediate result when correctness check failed. |
3cfdafc to
0f75ff9
Compare
0f75ff9 to
6a52eba
Compare
| void notifyOperationErased(Operation *op) override { | ||
| // Call old listener hook. | ||
| if (auto *oldListener = | ||
| dyn_cast_if_present<RewriterBase::Listener>(oldListenerHook)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why do we need this cast?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
notifyOperationErased is just the member function of RewriterBase::Listener, which is the sub-class of OpBuilder::Listener.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Offline discussed.
Automatically yield fused producer if it has multiple uses. E,g,
When fusing
powfinto tiled consumerreduce,%0should also be yield because it has two users. Otherwise, there would exist repeatpowfcomputation.